<head>
    <meta charset="UTF-8">
<title>算法提高 Program within a Program</title>
<link rel="stylesheet" href="../css/main.css">
</head>
 <p>【问题描述】</p>
<div>在一条东西走向无限延伸的道路上有一个机器人，该机器人需要去投递一份蛋糕。在这条道路上，每隔一英里就有一根电线杆。你需要控制机器人向东移动恰好N英里，并在那放下蛋糕。机器人移动的路线不必一直朝着目的地前进，只需要最终正确地投递蛋糕即可。</div>
<div>但不幸的是，机器人只有极其有限的内存，而且不具备高等的逻辑思维。因此，你必须在开始时就为机器人设计一段简单的程序，使得机器人照着程序执行后能够正确地投递蛋糕。这种程序由一条或多条规则组成，每条规则都告诉机器人在特定的情形下应该怎么做。同时，这些规则必须以下述的形式呈现：&lt;S&gt; &lt;M&gt; -&gt; &lt; 操作&gt;</div>
<div>这表明了当下列所有的条件都满足时：</div>
<div>1. 现在机器人正处于状态S。</div>
<div>2. 机器人现在所处电线杆上的标记为M。</div>
<div>那么机器人将会执行下列的操作之一：</div>
<div>1. 若&lt; 操作&gt; 的形式为&rdquo;&lt;D&gt; &lt;NS&gt; &lt;NM&gt;&rdquo;，其中D表示下一步移动的方向(&rsquo;W&rsquo; 表示向西；&rsquo;E&rsquo; 表示向东)，NS表示机器人的新状态，NM表示当前电线杆的新标记，则机器人将修改当前所处电线杆上的标记，改变自身状态，然后继续移动。</div>
<div>2. 若&lt; 操作&gt; 的形式为&rdquo;R&rdquo;（单个字母），则机器人将会在当前位置放下蛋糕，并结束任务。</div>
<div>若存在两条规则的S和M值完全相同，则机器人会变得不知所措。如果在任务执行中的某一时刻，机器人正处于状态X并且当前电线杆的标记为Y，但是程序中不存在任意一条规则同时满足S = X 和M = Y，则机器人同样会罢工。在所有的规则中，机器人的所有状态以及电线杆上的所有标记都必须保证绝对值不超过10<sup>6</sup>。现在假定机器人初始位置为原点，初始状态为0，并且所有电线杆上的标记初始时都是0。</div>
<div>现在给定N，请你为机器人编写一个合法的程序，使得机器人能够正确地投递蛋糕。与此同时，你为机器人编写的程序最多只能包含30 条规则，而且必须保证机器人能在1.5*10<sup>5</sup>步之内结束任务。</div>
<p>【输入格式】<br />
第一行包含一个非负整数N。<br />
【输出格式】</p>
<p>第一行包含一个正整数T，表示你为机器人编写的程序由T条规则组成。</p>
<p>接下来T行，每行均包含一条合法的规则，形式参见题面。</p>
<p>若存在多种合法方案，你只需输出任意一解。</p>
<p>【样例输入】<br />
样例1：</p>
<p>0</p>
<p>样例2：</p>
<p>4</p>
<p>样例3：</p>
<p>0<br />
【样例输出】</p>
<p>样例1：</p>
<p>1</p>
<p>0 0 -&gt; R</p>
<p>样例2：</p>
<p>5</p>
<p>0 0 -&gt; E 1 1</p>
<p>1 0 -&gt; E 2 1</p>
<p>2 0 -&gt; E 3 1</p>
<p>3 0 -&gt; E -1 1</p>
<p>-1 0 -&gt; R</p>
<p>样例3：</p>
<p>3</p>
<p>0 0 -&gt; E 1 1</p>
<p>0 1 -&gt; R</p>
<p>1 0 -&gt; W 0 1</p>
<p>【数据规模和约定】</p>
<p>对于40% 的数据：0&le;N&le;500。</p>
<p>对于100% 的数据：0&le;N&le;5000。</p>
<p>样例解释：</p>
<p>在第一个样例中，机器人初始时状态为0，并且所处电线杆上标记为0，所以机器人直接应用第一条规则，放下蛋糕。</p>
<p>在第二个样例中，机器人共有5 种状态，分别为0、1、2、3 和-1。机器人依次执行了下列操作：</p>
<p>1. 将当前电线杆上的标记修改为1，转为状态1，并向东移动。</p>
<p>2. 将当前电线杆上的标记修改为1，转为状态2，并向东移动。</p>
<p>3. 将当前电线杆上的标记修改为1，转为状态3，并向东移动。</p>
<p>4. 将当前电线杆上的标记修改为1，转为状态-1，并向东移动。</p>
<p>5. 放下蛋糕。</p>
<p>在第三个样例中，机器人共有2 种状态，所执行的操作依次为：</p>
<p>1. 将当前电线杆上的标记修改为1，转为状态1，并向东移动。</p>
<p>2. 将当前电线杆上的标记修改为1，转为状态0，并向西移动。</p>
<p>3. 放下蛋糕。</p>
<p>注意：机器人前后两次处于状态0 时应用了不同的规则，因为机器人所处电线杆上的标记不同。</p>